# xiu.py - 用于删除指定邮箱的申请记录

# 1. 从您的主应用文件和模型文件中导入必要的对象
from app import app
from models import db, Application

# 2. 定义要删除的目标邮箱列表
emails_to_delete = [
    # 'jingt-liu@ustc.edu',
    # 'jingt-liu@mail.ustc.edu.cn',
    # '1040054686@qq.com'
    'niuchumeng@mail.ustc.edu.cn',
    # niuchumeng@mail.ustc.udu.cn
]

print("--- 开始执行删除脚本 ---")
print(f"目标邮箱: {emails_to_delete}")

# 3. 使用 'with app.app_context():' 来创建一个应用上下文
with app.app_context():
    
    print("已进入应用上下文，准备查询数据库...")
    
    # 4. 查询所有邮箱匹配的申请记录
    # 使用 .in_() 方法可以高效地查询列表中的所有值
    applications_to_delete = Application.query.filter(
        Application.email.in_(emails_to_delete)
    ).all()

    # 5. 检查是否找到了记录，并执行删除操作
    if applications_to_delete:
        # 获取匹配记录的数量
        count = len(applications_to_delete)
        print(f"找到了 {count} 条匹配的申请记录，准备删除...")
        
        # 遍历并删除每一条记录
        for app in applications_to_delete:
            print(f"  - 正在删除 ID: {app.id}, 用户名: {app.username}, 邮箱: {app.email}")
            db.session.delete(app)
        
        # 提交事务，将删除操作保存到数据库
        db.session.commit()
        
        print(f"所有 {count} 条匹配的记录已成功删除。")
    else:
        print("未找到任何与目标邮箱匹配的申请记录，无需操作。")

print("--- 脚本执行完毕 ---")
